﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once

// Qt headers
#include <QObject>

// std headers
#include "GcsService.h"

namespace gmepgcs
{
    template<typename TKey, typename TValue>
    class GCS_SERVICE_EXPORTS IProvider : public QObject
    {
    public:
        explicit IProvider(QObject *parent = nullptr) : QObject(parent) {};
        virtual ~IProvider() {};

        virtual void Provide(TKey key) = 0;
    };
}